package bancosys.tec.component;

import java.util.LinkedList;
import java.util.List;

/**
 * @created Feb 7, 2007
 * @author Gustavo Almeida
 */
public class AbstractController implements Controller {
    private ControllerLocator controllerLocator;

    /**
     * Devolve o controller locator.
     * @return o controller locator.
     */
    protected ControllerLocator getControllerLocator() {
        return controllerLocator;
    }

    /**
     * Define o controller locator, nesse método o controller se registra no locator.
     * @param controllerLocator locator.
     */
    public void setControllerLocator(ControllerLocator controllerLocator) {
        this.controllerLocator = controllerLocator;
        controllerLocator.registerController(this);
    }

    /**
     * Devolve os pacotes gerenciados por esse controle.
     * @return os pacotes gerenciados por esse controle.
     */
    public List<String> getManagedPackages() {
        List<String> managedPackages = new LinkedList<String>();
        managedPackages.add(this.getClass().getPackage().getName());
        return managedPackages;
    }
}
